<?php
/**
 * 微笑云订票控制器
 * Author: 孙武 QQ:1228746736
 * Date: 2017/10/28
 * Time: 20:17
 */


namespace Home\Controller;

class OrderController extends BaseOrderController
{

    private $_M;//模型

    public function __construct()
    {
        parent::__construct();
        $this->_M = new \Home\Model\OrderModel();
    }


    /**
     * 点击订票->[添加乘客]->订单详情->支付
     * 添加乘客的提交页面
     * v2.0.0 逻辑更新
     */
    public function bookTicket()
    {


        //todo 1用户已经选定了票，持久化此信息
        if ($ticketId = I('get.ticketId')) {
            session('ticketId', I('get.ticketId'));
        }


        /*显示添加乘客返回来的用户*/
        if (IS_POST) {

            $selectedPsrPostData = I('post.checkbox');//乘客的ids

            $psrIdsArr = array_keys($selectedPsrPostData);//获取返回来的值

            $psrInfo = $this->_M->getPsrInfoByIds($psrIdsArr);

            if (!$psrInfo) {
                $this->err('未选择乘客!');
                exit;
            }
            $this->assign("psrInfo", $psrInfo);
        }


        /*处理车票信息*/
        if (I('get.ticketId')) {
            $ticketInfo = M('addr')->find($ticketId);
            $ticketInfo['addr_depart_time'] = $this->getDateTimeWeekByTimestamp($ticketInfo['addr_depart_time']);//处理时间戳
            $this->assign("ti", $ticketInfo);
        }

        /*获取用户基本信息*/
        $usrInfo = M('user')->field('usr_name,usr_tel')->find(session('userId'));
        $this->assign("usrInfo", $usrInfo);
        $this->assign("tickedId", session('ticketId'));
        $this->display();

    }


    /**
     * 订单详情
     * 点击订票->添加乘客->[订单详情]->支付
     * 订单详情页面
     */
    public function detailTicket()
    {


        /*收集订单信息*/
        $addrInfo = $this->getAddrInfoById(session('ticketId'));//车次信息
        $dbData = $this->getOrderDetail($addrInfo);

        if (C('HOME_DEBUG')) {
            dump($dbData);
        }
        /*检查信息是否合法*/
        if (($errMsg = $this->checkDataIsLeague($dbData)) !== true) {
            $this->err($errMsg);
            exit;
        }

        /*
           * 检查数据库是否有该订单
           * 信息完整，持久化数据信息
           * 防止用户在本页刷新
           * 进入选票是清除此信息
         */


        if (($orderId = $this->checkDBIsExistOrder($dbData)) > 0) {//订单存在
            /*载入已有订单,载入模板*/
            $order = $this->todetailOrder($dbData, $addrInfo);
            if (C('HOME_DEBUG')) {
                echo "订单存在";
                dump($orderId);
            }
            $this->assign("orderId",$orderId);
            $this->assign("order", $order);

        } else {//订单不存在
            /*新增订单*/


            if($orderId=M('order')->add($dbData)){
                if (C('HOME_DEBUG')) {
                    echo "订单不错在";
                    dump($orderId);
                }
                $order = $this->todetailOrder($dbData, $addrInfo);
                $this->assign("orderId",$orderId);
                $this->assign("order", $order);
            }else{
                $this->err('系统繁忙,请稍后再试!');
            }
        }
        $this->display();
    }


    /**
     * 取消订单
     * 订单详情 - > [取消订单]
     * @param $orderId int 订单id
     */
    public function cancelOrder($orderId)
    {
        $b=M('order')->where(array('od_id'=>$orderId))->setField('od_status','2');
    }

}